// search模块的小仓库
import { reqGetSearchInfo } from "@/api";

const state = {
    // 仓库初始状态
    searchList:{}
};
const mutations = {
    GETSEARCHLIST(state,searchList){
        state.searchList=searchList
    }
};
const actions = {
    // 获取search的数据
    async getSearchList({ commit }, params = {}) {
        // 当前这个函数在调用服务器数据的时候，至少传递一个参数（空对象）
        // params形参：是当用户派发action的时候,第二个参数传递过来的,至少是一个空对象
        let result = await reqGetSearchInfo(params)
        if (result.code == 200) {
            commit('GETSEARCHLIST', result.data);
        }
    }
};
// 计算属性
// 项目中fetters主要的作用是：简化仓库中的数据
// 可以把我们将来在组件当中需要用的数据简化一下（将来组件在获取数据的时候就方便了）
const getters = {
    goodsList(state){
        // 当前形参state是当前仓库中的state，并非大仓库的那个state
        // 这样写是有问题的 空对象时候undefiend
        //加入网络不好，state.searchList.goodsList将返回unfined，
        // 计算新的属性的属性值至少为一个数组
        return state.searchList.goodsList||[]
    },
    trademarkList(state){
        return state.searchList.trademarkList
    },
    attrsList(state){
        return state.searchList.attrsList
    }
};

export default {
    state,
    mutations,
    actions,
    getters
}